2004年09月06日
川俣晶の縁側ソフトウェア技術雑記 total 3292 count

クラスの依存性を取り除くIoC(Inversion of Control)とDependency Injectionパターン

Written By: 川俣 晶連絡先

 クラスの依存性を取り除く手段として、IoC(Inversion of Control)、別名Dependency Injectionパターンというものがあるそうです。

 たまたま以下のページに辿り着いて、思わずざっと読んでしまったので、メモがてらここに書いておきます。(って、こんな限界状況で、そんな暢気なことをしていて良いのか?)

Inversion of Control コンテナと Dependency Injection パターン (マーチン・ファウラー著)

 私自身も、テストの都合でクラスの依存性が問題になることは多く、著者と問題意識を共有できる部分がけっこうあったように感じられました。

 とはいえ、本当にこれを使うか?と言われると難しいですね。十分にテストが可能になる程度に依存性を分離できたらそれでOKという感じで、Dependency Injectionパターン(やService Locator)まで使うかというと、そこまで必要とも思えません。あくまで、今そう感じただけで、将来も同じかどうかは分かりませんが。たぶん、開発するプログラムの規模が小さいと、あえてこれを使うメリットが薄いのではないかと感じました。

 しかし、こういうパターンがあって使用されているという知識を持つことは悪くないと思います。